home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 September / PCWorld_2006-09_cd.bin / v cisle / hexer / mpth_17.exe / {app} / scripts / Enumerate Differences.mps < prev    next >
Text File  |  2005-05-22  |  1KB  |  71 lines

  1. INCLUDE '*.lng'
  2. = show differences in a text box
  3. INCLUDE 'def.mps'
  4.  
  5. option globalvars, 1
  6. var count dword, len dword, blocklen dword, size text
  7. var start dword ende dword s1 dword msg text
  8.  
  9. count = compare_count
  10. if count < 1
  11.   msgbox __NODIFF__, MB_ICONASTERISK: 
  12.   end
  13. endif
  14.  
  15.  
  16. = calculate the maximum length of a diff block size
  17. blocklen = 0
  18. number_radix = 10
  19. number_prefix = ''
  20. number_suffix = ''
  21. loop checkdifflen, count
  22.  
  23. loop line, count
  24. showprogress 100,100
  25.  
  26. textbox msg, __COMP__
  27. end
  28.  
  29.  
  30. = sub: check length of difference block
  31. @@checkdifflen
  32. len = textlen(text(compare_end(loop)-compare_start(loop)+1))
  33. if len > blocklen
  34.   blocklen = len
  35. endif
  36. return
  37.  
  38. = sub:adjust size length
  39. @@adj1
  40. size = ' '+size
  41. return
  42.  
  43. @@adjustsize
  44. loop adj1, (blocklen - textlen(size))
  45. return
  46.  
  47. = sub:write diff line
  48. @@line
  49. start = compare_start(loop)
  50. ende=compare_end(loop)
  51. number_radix = 10
  52. number_prefix = ''
  53. number_suffix = ''
  54. concat msg (__BLK__+text(loop+1)+":\t")
  55. number_radix = 16
  56. number_prefix = '0x'
  57. concat msg (text(start)+' - '+text(ende)+' (')
  58. number_radix = 10
  59. number_prefix = ''
  60. s1 = ende - start + 1:size = text(s1): call adjustsize
  61. if s1 == 1
  62.   concat msg (size + __1BYTE__)
  63. else
  64.   concat msg (size + __BYTES__)
  65. endif
  66. showprogress count , loop
  67. return
  68.  
  69.  
  70.  
  71.